package integracion.converters;

import integracion.converters.entidades.ItemVenta;
import integracion.converters.entidades.Resultado;
import integracion.converters.entidades.Venta;

import java.text.SimpleDateFormat;
import java.util.Iterator;

import org.apache.log4j.Logger;

import portal.vo.CompraVO;
import portal.vo.ItemVO;

import com.thoughtworks.xstream.XStream;

public class EnvioVentaXmlConverter extends
		AbstractXmlConverter<CompraVO> {

	Logger logger = Logger.getLogger(EnvioVentaXmlConverter.class);
	
	SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	

	@Override
	public String getXml(CompraVO vo) throws ErrorEnXmlException {
		XStream xs = super.getXStreamVenta();
		Venta venta = this.completarVenta(vo);
		try {
			return XML_VERSION + xs.toXML(venta);
		} catch (Exception e) {
			throw new ErrorEnXmlException(e.getMessage());
		}
	}
	
	protected Venta completarVenta(CompraVO compra){
		Venta venta = new Venta();
		venta.setNroVenta(compra.getId().toString());
		venta.setIdModulo("10"); // nro de grupo
		venta.setCoordenadaX(String.valueOf(compra.getUsuarioCompra().getCoordenadaX()));
		venta.setCoordenadaY(String.valueOf(compra.getUsuarioCompra().getCoordenadaY()));
		venta.setFecha(compra.getFechaCompraString());
		venta.setMontoTotal(String.valueOf(compra.getMontoTotal()));
		
		ItemVO item = null;
		Iterator<ItemVO> it = compra.getItems().iterator();
		while (it.hasNext()) {
			item = it.next();
			ItemVenta itemVenta = new ItemVenta();
			itemVenta.setCodigoArticulo(item.getItemProducto().getCodigo().toString());
			itemVenta.setCantidad(String.valueOf(item.getCantidad()));
			venta.getItemsVenta().add(itemVenta);
		}
		return venta;
	}
	
	public Resultado getResultado(String xml) {
		XStream xs = super.getXStreamResultado();
		
		Resultado resultado = (Resultado)xs.fromXML(xml);
		
		return resultado;
	}
}
